perm filename BREAK.ANS[UCI,SYS] blob sn#049831 filedate 1973-07-03 generic text, type T, neo UTF8
∂19-JUN-73  1400		network site BBN
 -------
 Date: 19-JUN-73 1701-EDT
 From: LEWIS at BBN-TENEX
 Re:   GO
 - - - -
 BRUCE,
 THE PROBLEM WITH GO (AND RETURN FOR THAT MATTER) IS THAT
 IT UNWINDS THE STACK BACK TO THE LAST PROG. HOWEVER, IT DOES NOT
 UNWIND ERRSETS. SINCE THE GO OR OK EVALUATES ITS EXPRESSION INSIDE
 OF AN ERRSET, THE NEXT TIME YOU DO A ↑ (WHICH IN TURN DOES (ERR NIL))
 CONTROL IS TRANSFERED TO A POINT ON THE STACK WHICH IS NO LONGER
 VALID. THIS CAN BE FIXED, AND PROBABLY WILL BE IN THE NEXT RELEASE.
 THE PROBLEM WITH THE LEVEL NUMBER IS NOT SO SIMPLE. GO AND OK
 ARE EXPECTING THE EXPRESSION TO RETURN A VALUE. AFTER THE VALUE
 IS RETURNED, THE LEVEL # IS DECREMENTED. SINCE GO AND RETURN
 SKIP OVER ALL OF THAT AND IMMEDIATELY RETURN TO THE LEVEL OF
 THE PROG, THE LEVEL # REMAINS UNCHANGED, AS DO THE IO CHANNELS AND
 THE PROMPT CHARACTER. YOU WILL GET A SIMILAR PROBLEM IF THE BROKEN
 EXPRESSION CONTAINS A RETFROM, EXCEPT THAT RETFROM HANDELS ERRSETS.
 I WILL GIVE A LOT OF THOUGHT TO THIS AND SEE WHAT I CAN COME UP WITH.
 IN THE MEANTIME DON'T USE GO OR OK ON GO OR RETURN. IF THE BREAK
 OCCURS BECAUSE OF AN ERROR, YOU CAN USE EX TO CONTINUE, BUT OTHERWISE,
 I AM AT LOSS AS TO WHAT TO SAY. SORRY.
 DARYLE
 -------